The domain name system (DNS) and domain name registration system have become an integral part of how consumers and businesses conduct activity on the Internet.
The DNS system works by an interrelation of registrants, registrars, and registries. For example, registries maintain operative control over a top level domain (TLD), such as the traditional .COM, .NET, .ORG, .EDU, and .GOV, as well as the newer .BIZ, .INFO, and .NAME TLDs. Registrants are the entities that “reserve” the use of a domain name in a specific TLD for a finite time. Registrars act like an intermediary between the registrants and registry. Registrars receive and process the registrants' domain name reservation requests, and provide tools and an interface to the registrant to maintain operation of its reserved names.
In a typical domain name registration example, a registrant may want to reserve the domain name “example.com.” To do so, the registrant would contact a registrar with a business relationship with the registry operating the .COM TLD. The registrant would query the registrar about the availability of the domain name “example” in the “.COM” namespace. If the “example.com” domain name were unavailable for the .COM TLD, the registrar may suggest alternative domain names at other TLDs or at the .COM TLD with names similar to “example,” e.g., exampleonline.com, exampleweb.net, myexample.org, etc. The registrant may then select domain names for registration and obtain a registration of the domain name by paying registration fees and providing information required by the registry and registrar. The registry charges the registrar for the domain name registration and the registrar collects its registration fee from the registrant.
In some cases, a domain name registrant may be dissatisfied with the domain name suggestions typically provided by a registrar and seek to acquire domain name suggestions from other sources. In some cases, a domain name registrant may not be able to develop a set of interesting domain names for registration and would like to receive name registration suggestions to find interesting available domain names for registration.
A tool that could take alternative data sources as an input and provide name suggestions based on data derived from the data sources would be useful to help potential domain name registrants develop name registration possibilities for further evaluation or registration. In particular, a tool would be useful that may take as an input an image data file, an audio data file, and/or metadata derived from different file types, and based on that input develop name suggestions for registration.
Image processing and manipulation has evolved beyond the processing of individual images, but also includes the interrelation of images and image data, such as in the example of comparing an image with a library of images for similarities. Images may be compared on a pixel level, on a content level, or a combination of the two. When comparing images on a pixel level, other images with similar pixel characteristics may be found by examining the image blocks of pixels for similarities. When comparing images on a content level, first the image is characterized by its content by recognizing objects within the image and then that content data is used to perform a text or image search.
One example of comparing images on the pixel level involves processing the blocks of pixels that make up an encoded and compressed image file. Images files are compared at the pixel level typically by indexing the discrete cosine transformation (DCT) blocks of a subject image and comparing that information relationally to a database of DCT block patterns. Because DCT blocks represent frequency domain data, representations of blocks of pixels, comparisons may be made at low frequency data points across many DCT blocks. Matching and relevance may be determined by the amount of intersection of DCT blocks based on block order, block similarity, and percentage of blocks within a certain similarity. Other known and yet to be developed ways of representing images in the frequency domain may also be used.
Object recognition uses extendible trainable libraries for object recognition within an image. For example, a picture of a car may be identified as a car by recognizing the edge detail of a shape or shapes within the image data file. Commercially available object recognition software may also identify the car as a Chevrolet based on an emblem found on the car. The object recognition software may further identify the car as a Chevrolet Camaro based on other identifying markers, such as body lines, wheel designs, colors, or text located on the car. In a particular image, the object recognition software may identify several different objects and create a manifest of objects. The software may also have multiple levels of granularity in its recognition result as well as a confidence level. For example, the software may with 99% confidence recognize a car, 70% confidence recognize a Chevrolet, 20% confidence recognize a Camaro, and with 10% confidence recognize a 2010 model.
Object recognition libraries may be trainable and extendible by training the libraries to recognize objects that it cannot recognize or has not encountered before. New object information may be input by a user and stored in the software so that the next time recognition is requested of the object (or a similar object), the software may recognize the object.
Audio clips may be processed either by comparing the actual audio clip with other audio clips or by recognizing the words spoken within the audio clip. For example, if a user is listening to a particular song, he may record part of the song with a mobile phone and submit it for processing. The audio recognition engine may identify the song by performing a Fast Fourier Transform (or similar transform function) and comparing it to a database of audio clips. Similar to comparing image data DCT blocks, comparing a subject audio clip to a database of audio clips in the frequency domain, allows the comparison to be done at lower frequencies, thereby increasing the chance of a match. Matching and relevance may be determined by the amount of intersection of frequency data within a certain similarity.
In another example, the user may record a voice memo, submit it to a speech recognition engine and retrieve a textual representation of the spoken words. Similar to object recognition software, speech recognition or speech-to-text software typically uses a trainable database to recognize the way that words are spoken individually and in groups to find matching words and phrases.
Metadata may simply be understood as data about data. It is often embedded in any file representation of data. Metadata may include the time and date a file was created or edited. It may include the location or identifying information about the user creating the file. It may include server or other information about the machines that have created, modified, transmitted, or received the file. Metadata may be extracted from image files and audio files, and may also include metadata derived from alternative Internet sources, such as Twitter Tweets, emails, or other sources.
The information derived from images, audio files, or metadata may be used as inputs into a name suggestion service. Optionally, the information may be manipulated prior to inputting into the name suggestion service for better quality results.